﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SIGEB.Modelo.moduloUsuarios
{
    public class usuario
    {
        #region "constructores"
        //id varchar(20), ced varchar(20), nom varchar(100), ap1 varchar(100), ap2 varchar(100), sex bool, dom varchar(150), mail varchar(100), tel varchar(100), est int4, perfil varchar(20)
        public usuario(String idUsuario, String cedula, String nombre, String apellido1, String apellido2,
            bool mujer, String password, String domicilio, String email, String telefono, int estado, String idGrupo, String permisos)
        {
            this.idUsuario = idUsuario;
            this.cedula = cedula;
            this.nombre = nombre;
            if (!String.IsNullOrEmpty(password))
                this.password = password;
            this.apellido1 = apellido1;
            this.apellido2 = apellido2;
            this.domicilio = domicilio;
            this.email = email;
            this.telefono = telefono;
            this.mujer = mujer;
            this.estado = estado;
            this.idGrupo = idGrupo;
            this.permisos = permisos;
        }

        public usuario(String idUsuario, String cedula, String nombre, String apellido1, String apellido2,
            bool mujer, String password, String domicilio, String email, String telefono, String idGrupo, String permisos)
        {
            this.idUsuario = idUsuario;
            this.cedula = cedula;
            this.nombre = nombre;
            this.apellido1 = apellido1;
            this.apellido2 = apellido2;
            this.domicilio = domicilio;
            this.email = email;
            if (!String.IsNullOrEmpty(password))
                this.password = password;
            this.telefono = telefono;
            this.mujer = mujer;
            this.idGrupo = idGrupo;
            this.permisos = permisos;
            this.estado = ESTADOACTIVO;
        }

        #endregion

        #region "métodos"

        internal void copiarDatos(usuario nuevo)
        {
            throw new NotImplementedException();
        }

        public bool puede(int accion)
        {
            return permisos[accion] == '1';
        }
        
        #endregion

        #region "atributos"

        private String _idUsuario;
        private String _password;
        private String _cedula;
        private String _nombre;
        private String _apellido1;
        private String _apellido2;
        private String _domicilio;
        private String _email;
        private String _telefono;
        private String _idGrupo;
        private String _permisos;
        private bool _mujer;
        private int _estado;

        public String permisos
        {
            set { _permisos = value; }
            get { return _permisos; }
        }

        public bool mujer
        {
            set { _mujer = value; }
            get { return _mujer; }
        }

        public String password
        {
            set { _password = value; }
            get { return _password; }
        }

        public String idGrupo
        {
            set { _idGrupo = value; }
            get { return _idGrupo; }
        }

        public String idUsuario
        {
            set { _idUsuario = value; }
            get { return _idUsuario; }
        }

        public String cedula
        {
            set { _cedula = value; }
            get { return _cedula; }
        }

        public String nombre
        {
            set { _nombre = value; }
            get { return _nombre; }
        }

        public String apellido1
        {
            set { _apellido1 = value; }
            get { return _apellido1; }
        }

        public String apellido2
        {
            set { _apellido2 = value; }
            get { return _apellido2; }
        }

        public String domicilio
        {
            set { _domicilio = value; }
            get { return _domicilio; }
        }

        public String email
        {
            set { _email = value; }
            get { return _email; }
        }

        public String telefono
        {
            set { _telefono = value; }
            get { return _telefono; }
        }
    
        public int estado
        {
            set { _estado = value; }
            get { return _estado; }
        }

        public static int ESTADOACTIVO = 1;

        public static int ESTADOINACTIVO = 2;

        #endregion
    }
}
